<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
       // 基本数据类型有 String、Number、Boolean、Null、Undefined
       // 引用数据类型有 Object、Array

       // 1.typeof 检测数据类型
       console.log(typeof 12);  // number
       console.log(typeof '43');
       console.log(typeof true);
       console.log(typeof a);

       // 2.数据类型转换 +、-、*、% 自动隐士转换
       let age = +prompt('请输入你的年龄')
       console.log(typeof age);
       console.log(parseInt(age) + 5); // parseInt(取整)、parseFloat(取小数)

       // 3.创建对象
        let dog = {
            // 属性名：属性值
            name:'刘德华',
            age:20,

            // 方法名：匿名函数
            play:function(){
                console.log(唱歌);
            }
        }


        // 3.1 查询对象属性
        console.log(dog.name);
        console.log(dog['age']);

        // 3.2 修改对象名
        dog.name = '张学友'
        dog['age'] = 30

        // 3.3 增加新属性
        dog.weiht = 25
        dog['height'] = 35

        // 3.4 删除属性
        delete dog.age
        delete dog['name']

        // 3.5 遍历对象
        for (let k in dog) {
            // k 就是对象里边的属性名
            console.log(k);      // name/age
            // 对象名[K]对象里边的属性值
            console.log(dog[k]); // 刘德华/20
        }

        // 4.数组
         let arr = [1,2,3,4,5,6]
        //  过滤出大于等于6 的
         let arr2 = arr.filter(item =>{
            return item >= 6
        })
        

        // 5.函数
       //1- 函数的形参和实参
       function hanshu(形参1,形参2) {
            console.log();
        }
        // 调用函数的时候，实参会赋值给形参
        hanshu(实参1,实参2)

        // 2-求n-m之间的和，封装成函数
        let n = +prompt('请输入第一个数字')
        let m = +prompt('请输入第二个数字')
        function jin(a, b) {
            let sun = 0
            for (let i = a; i <= b; i++) {
                sum += i
            }
            document.write(sum)
        }
         jin(n,m)
        
        // 注意点：
        //  形参，如果没有实参传出值过来，相当于变量没有赋值，结果为UNDEFINED
        //  为了防止函数调用的时候不写实参，可以给形参赋值为0
        //  如果函数调用传实参过来，相当于 x=0 x= 2 给形参2次赋值，第2次赋值为准。
    </script>
</body>

</html>